package br.com.caelum.iogi.util;
import com.google.common.collect.AbstractIterator;
import com.google.common.collect.Maps;
import java.util.Iterator;
import java.util.Map.Entry;
public class IogiCollections {
private IogiCollections() {
}
public static <A, B> Iterable<Entry<A, B>> zip(final Iterable<A> firstIterable, final Iterable<B> secondIterable) {
return new Iterable<Entry<A, B>>() {
public Iterator<Entry<A, B>> iterator() {
return new AbstractIterator<Entry<A, B>>() {
private Iterator<A> first = firstIterable.iterator();
private Iterator<B> second = secondIterable.iterator();
@Override
protected Entry<A, B> computeNext() {
if (!first.hasNext() || !second.hasNext()) {
return endOfData();
}
return Maps.immutableEntry(first.next(), second.next());
}
};
}
};
}
}